Field of the Invention
The present invention is related to methods for data management and, in particular, to automated separation of data.
Description of the Related Art
Typically, user data is stored in a structured format in a database. Modern databases need to provide for multi-tenancy—i.e., serving of users from different organizations in an isolated mode within the same service. For example, some users can see only the names and addresses of the clients, while other users (e.g., bank employees) can see client account data. In other words, different subscribers to data service are isolated from each other in terms of accessing the data from the same sources.
Conventionally, the multi-tenancy (isolation) can be provided by implementing a user table, where each user (subscriber) is assigned a unique primary key. Then, the primary key can be used as key for selecting corresponding records from other tables of a database. Each table has to have a “UserID” field and each user request selects data only available for the particular UserID. This conventional approach is efficient in terms of isolation of users. However, it is hard to change what data is allowed for a given UserID. In order to do this, the data field setting in each of the hundreds and even thousand of tables may have to be changed.
A method for data isolation is described in US patent publication 2013086322. Addition of tenant discrimination columns in various tables in order to isolate data is known. However, the problem becomes more complex if several columns (keys) are used for dividing data. The task is even more complex if a number of dividers changes with time. If a number and content of the dividers changes, the queries for modifying corresponding tables, fields and keys need to be re-written and executed. Alternatively, an executable code for generating the database queries has to be re-written. US Patent Publication No. 2013086322 discloses a special code with notations for separation of data. However, the described solution does not provide for turning data separation on and off. Additionally, it is desired to simplify the routine operations for data separation, so they can be implemented by a database administrator using a visual interface instead of the developers making changes to the source code.
Accordingly, there is a need in the art for a system and method for an automated control of data separation.